package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 文件的复制
 */
public class CopyDemo {
    public static void main(String[] args) throws IOException {
//        FileInputStream fis = new FileInputStream("image.png");
//        FileOutputStream fos = new FileOutputStream("image_cp.png");

        FileInputStream fis = new FileInputStream("ppt.pptx");
        FileOutputStream fos = new FileOutputStream("ppt_cp.pptx");

        int d;//用来记录每次读取的字节
        /*
            image.png文件内容
            10011100 00110011 10101010 01010101 11110000 ...

            ------------------------分割线-----------------------------------

            第一次调用:
            d = fis.read();

            读取image.png第一个字节:
            image.png文件内容
            10011100 00110011 10101010 01010101 11110000 ...
            ^^^^^^^^
            读取的字节

            d的2进制:00000000 00000000 00000000 10011100

            -------------------------------------------------------

            调用:fos.write(d)
            将d的2进制的"第八位"写入文件image_cp.png
            d的2进制:00000000 00000000 00000000 10011100
                                               ^^^^^^^^
                                               写出的字节

            image_cp.png文件内容:
            10011100

         */
        long start = System.currentTimeMillis();//获取当前系统时间
        while((d = fis.read())!=-1) {
            fos.write(d);
        }
        long end = System.currentTimeMillis();//获取当前系统时间
        System.out.println("复制完毕!耗时:"+(end-start)+"ms");
        fis.close();
        fos.close();
    }
}
